home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload Trio 2 / Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO / dir41 / timstk11.zip / DEMO.LST < prev    next >
File List  |  1993-04-01  |  11KB  |  288 lines

  1. 000001 0000                  ;    Main program
  2. 000002 0000                  ;
  3. 000003 0000                  ;    1424 min  1444 max  5 stack
  4. 000004 0000                  ;
  5. 000005 0000                  MAIN:
  6. 000006 0000 BD002A               JSR    SIMPLE
  7. 000007 0003 BD002F               JSR    FWDBRA
  8. 000008 0006 BD0044               JSR    BCKBRA
  9. 000009 0009 BD005A               JSR    SIMPLOOP
  10. 000010 000C BD0061               JSR    BACKLOOP
  11. 000011 000F BD006A               JSR    COMPLEX
  12. 000012 0012 BD0077               JSR    INDJMP
  13. 000013 0015 BD007D               JSR    INSTIME
  14. 000014 0018 BD0081               JSR    ILLEGAL
  15. 000015 001B BD0085               JSR    OUTLOOP
  16. 000016 001E BD0097               JSR    TWOLOOP
  17. 000017 0021 BD00A5               JSR    VARLOOP
  18. 000018 0024 CE002A               LDX    #SIMPLE
  19. 000019 0027 AD00                 JSR    0,X    ; Use 0 cycles 0 stack
  20. 000020 0029 39                   RTS
  21.  
  22. 000021 002A                  ;    Simple subroutine
  23. 000022 002A                  ;
  24. 000023 002A                  ;    Contains no conditional branches.
  25. 000024 002A                  ;
  26. 000025 002A                  ;    11 min  11 max  0 stack
  27. 000026 002A                  ;
  28. 000027 002A                  SIMPLE:
  29. 000028 002A 40                   NEGA
  30. 000029 002B 48                   ASLA
  31. 000030 002C 8B05                 ADDA    #5
  32. 000031 002E 39                   RTS
  33.  
  34. 000032 002F                  ;    Forward branches
  35. 000033 002F                  ;
  36. 000034 002F                  ;    Contains only forward branches.
  37. 000035 002F                  ;
  38. 000036 002F                  ;    16 min  26 max  0 stack
  39. 000037 002F                  ;
  40. 000038 002F                  FWDBRA:
  41. 000039 002F 47                   ASRA
  42. 000040 0030 2406                 BCC    FWD010
  43. 000041 0032 CE002A               LDX    #SIMPLE
  44. 000042 0035 47                   ASRA
  45. 000043 0036 2405                 BCC    FWD020
  46. 000044 0038                  FWD010:
  47. 000045 0038 CE002F               LDX    #FWDBRA
  48. 000046 003B 2006                 BRA    FWDRET
  49. 000047 003D                  FWD020:
  50. 000048 003D 47                   ASRA
  51. 000049 003E 2403                 BCC    FWDRET
  52. 000050 0040 CE0044               LDX    #BCKBRA
  53. 000051 0043                  FWDRET:
  54. 000052 0043 39                   RTS
  55.  
  56. 000053 0044                  ;    Backward normal branches
  57. 000054 0044                  ;
  58. 000055 0044                  ;    Contains only backward normal branches.
  59. 000056 0044                  ;
  60. 000057 0044                  ;    16 min  26 max  0 stack
  61. 000058 0044                  ;
  62. 000059 0044                  BCKBRA:
  63. 000060 0044 47                   ASRA
  64. 000061 0045 2407                 BCC    BCK010
  65. 000062 0047 CE002A               LDX    #SIMPLE
  66. 000063 004A 47                   ASRA
  67. 000064 004B 2406                 BCC    BCK020
  68. 000065 004D                  BCKRET:
  69. 000066 004D 39                   RTS
  70. 000067 004E                  BCK010:
  71. 000068 004E CE002F               LDX    #FWDBRA
  72. 000069 0051 20FA                 BRA    BCKRET
  73. 000070 0053                  BCK020:
  74. 000071 0053 47                   ASRA
  75. 000072 0054 24F7                 BCC    BCKRET
  76. 000073 0056 CE0044               LDX    #BCKBRA
  77. 000074 0059 39                   RTS
  78.  
  79. 000075 005A                  ;    Simple loop
  80. 000076 005A                  ;
  81. 000077 005A                  ;    A simple loop.
  82. 000078 005A                  ;
  83. 000079 005A                  ;    42 min  42 max  0 stack
  84. 000080 005A                  ;
  85. 000081 005A                  SIMPLOOP:
  86. 000082 005A 8605                 LDAA    #5
  87. 000083 005C                  SIMP010:
  88. 000084 005C 01                   NOP
  89. 000085 005D 4A                   DECA
  90. 000086 005E 26FC                 BNE    SIMP010        ; TAKE 4
  91. 000087 0060 39                   RTS
  92.  
  93. 000088 0061                  ;    Loop with backwards branch
  94. 000089 0061                  ;
  95. 000090 0061                  ;    A simple loop with a normal backwards
  96. 000091 0061                  ;    branch that terminates in the middle.
  97. 000092 0061                  ;
  98. 000093 0061                  ;    62 min  62 max  0 stack
  99. 000094 0061                  ;
  100. 000095 0061                  BACKLOOP:
  101. 000096 0061 8606                 LDAA    #6
  102. 000097 0063                  BACK010:
  103. 000098 0063 4A                   DECA
  104. 000099 0064 2703                 BEQ    BACKRET
  105. 000100 0066 01                   NOP
  106. 000101 0067 20FA                 BRA    BACK010
  107. 000102 0069                  BACKRET:
  108. 000103 0069 39                   RTS
  109.  
  110. 000104 006A                  ;    Complex loop
  111. 000105 006A                  ;
  112. 000106 006A                  ;    A loop that will trigger the
  113. 000107 006A                  ;    complex loop message.
  114. 000108 006A                  ;
  115. 000109 006A                  ;    43 min  43 max  2 stack
  116. 000110 006A                  ;
  117. 000111 006A                  COMPLEX:
  118. 000112 006A 8605                 LDAA    #5
  119. 000113 006C                  COMPL1:
  120. 000114 006C 4A                   DECA
  121. 000115 006D 2704                 BEQ    COMPX1    ; FALL 2
  122. 000116 006F 4A                   DECA
  123. 000117 0070 26FA                 BNE    COMPL1    ; TAKE 2
  124. 000118 0072 39                   RTS
  125. 000119 0073                  COMPX1:
  126. 000120 0073 BD0076               JSR    COMPX2
  127. 000121 0076                  COMPX2:
  128. 000122 0076 39                   RTS
  129.  
  130. 000123 0077                  ;    Indirect jump test
  131. 000124 0077                  ;
  132. 000125 0077                  ;    Indirect jump that goes some place
  133. 000126 0077                  ;    and one that returns.
  134. 000127 0077                  ;
  135. 000128 0077                  ;    11 min  11 max  0 stack
  136. 000129 0077                  ;
  137. 000130 0077                  INDJMP:
  138. 000131 0077 6E00                 JMP    0,X    ; Destination JMPRET
  139. 000132 0079 01                   NOP
  140. 000133 007A                  JMPRET:
  141. 000134 007A 38                   PULX        ; Pull return address
  142. 000135 007B 6E00                 JMP    0,X    ; Use indirect jump as RTS
  143.  
  144. 000136 007D                  ;    Instructions that can not be timed
  145. 000137 007D                  ;
  146. 000138 007D                  ;    These instructions can not be timed.
  147. 000139 007D                  ;
  148. 000140 007D                  ;    8 min  8 max  0 stack
  149. 000141 007D                  ;
  150. 000142 007D                  INSTIME:
  151. 000143 007D 2701                 BEQ    INST010    ; May be skipped
  152. 000144 007F CF                   STOP        ; Stop instruction
  153. 000145 0080                  INST010:
  154. 000146 0080 39                   RTS
  155.  
  156. 000147 0081                  ;    Illegal instructions
  157. 000148 0081                  ;
  158. 000149 0081                  ;    These are illegal in the demo.
  159. 000150 0081                  ;
  160. 000151 0081                  ;    8 min  8 max  0 stack
  161. 000152 0081                  ;
  162. 000153 0081                  ILLEGAL:
  163. 000154 0081 2701                 BEQ    ILL010    ; May be skipped
  164. 000155 0083 3D                   MUL
  165. 000156 0084                  ILL010:
  166. 000157 0084 39                   RTS
  167.  
  168. 000158 0085                  ;    Outer loop
  169. 000159 0085                  ;
  170. 000160 0085                  ;    The output loop of nested loops.
  171. 000161 0085                  ;
  172. 000162 0085                  ;    482 min  482 max  3 stack
  173. 000163 0085                  ;
  174. 000164 0085                  OUTLOOP:
  175. 000165 0085 8605                 LDAA    #5
  176. 000166 0087                  OUT010:
  177. 000167 0087 36                   PSHA
  178. 000168 0088 BD0090               JSR    INLOOP
  179. 000169 008B 32                   PULA
  180. 000170 008C 4A                   DECA
  181. 000171 008D 26F8                 BNE    OUT010        ; TAKE 4
  182. 000172 008F 39                   RTS
  183.  
  184. 000173 0090                  ;    Inner loop
  185. 000174 0090                  ;
  186. 000175 0090                  ;    The inner loop of nested loops.
  187. 000176 0090                  ;
  188. 000177 0090                  ;    77 min  77 max  0 stack
  189. 000178 0090                  ;
  190. 000179 0090                  INLOOP:
  191. 000180 0090 860A                 LDAA    #10
  192. 000181 0092                  IN010:
  193. 000182 0092 01                   NOP
  194. 000183 0093 4A                   DECA
  195. 000184 0094 26FC                 BNE    IN010        ; TAKE 9
  196. 000185 0096 39                   RTS
  197.  
  198. 000186 0097                  ;    Two loops
  199. 000187 0097                  ;
  200. 000188 0097                  ;    Two loops in one.
  201. 000189 0097                  ;
  202. 000190 0097                  ;    436 min  436 max  0 stack
  203. 000191 0097                  ;
  204. 000192 0097                  TWOLOOP:
  205. 000193 0097 CE0005               LDX    #5
  206. 000194 009A                  TWO010:
  207. 000195 009A 01                   NOP
  208. 000196 009B 860A                 LDAA    #10
  209. 000197 009D                  TWO020:
  210. 000198 009D 01                   NOP
  211. 000199 009E 4A                   DECA
  212. 000200 009F 26FC                 BNE    TWO020        ; TAKE 49
  213. 000201 00A1                  ;
  214. 000202 00A1 09                   DEX
  215. 000203 00A2 26F6                 BNE    TWO010        ; TAKE 4
  216. 000204 00A4                  ;
  217. 000205 00A4 39                   RTS
  218.  
  219. 000206 00A5                  ;    Variable loops
  220. 000207 00A5                  ;
  221. 000208 00A5                  ;    Loops different number of times
  222. 000209 00A5                  ;
  223. 000210 00A5                  ;    211 min  211 max  2 stack
  224. 000211 00A5                  ;
  225. 000212 00A5                  VARLOOP:
  226. 000213 00A5 8605                 LDAA    #5
  227. 000214 00A7 BD00B4               JSR    DIFSUB        ; 30 cycles
  228. 000215 00AA 860A                 LDAA    #10
  229. 000216 00AC BD00B4               JSR    DIFSUB        ; 55 cycles
  230. 000217 00AF 8614                 LDAA    #20
  231. 000218 00B1 7E00B4               JMP    DIFSUB
  232. 000219 00B4                  ;
  233. 000220 00B4                  DIFSUB:
  234. 000221 00B4 4A                   DECA
  235. 000222 00B5 26FD                 BNE    DIFSUB        ; TAKE 19
  236. 000223 00B7 39                   RTS
  237.  
  238. 000224 00B8                  ;    Stack Imbalance
  239. 000225 00B8                  ;
  240. 000226 00B8                  ;    Stack may become imbalanced
  241. 000227 00B8                  ;
  242. 000228 00B8                  ;    10 min  13 max  1 stack
  243. 000229 00B8                  ;
  244. 000230 00B8                  STKIMB:
  245. 000231 00B8 01                   NOP
  246. 000232 00B9 2601                 BNE    STK010
  247. 000233 00BB 36                   PSHA
  248. 000234 00BC                  STK010:
  249. 000235 00BC 39                   RTS
  250. 000236 00BD                      .END
  251.  
  252. BACK010 =0063  
  253. BACKLOOP=0061  
  254. BACKRET =0069  
  255. BCK010  =004E  
  256. BCK020  =0053  
  257. BCKBRA  =0044  
  258. BCKRET  =004D  
  259. COMPL1  =006C  
  260. COMPLEX =006A  
  261. COMPX1  =0073  
  262. COMPX2  =0076  
  263. DIFSUB  =00B4  
  264. FWD010  =0038  
  265. FWD020  =003D  
  266. FWDBRA  =002F  
  267. FWDRET  =0043  
  268. ILL010  =0084  
  269. ILLEGAL =0081  
  270. IN010   =0092  
  271. INDJMP  =0077  
  272. INLOOP  =0090  
  273. INST010 =0080  
  274. INSTIME =007D  
  275. JMPRET  =007A  
  276. MAIN    =0000  
  277. OUT010  =0087  
  278. OUTLOOP =0085  
  279. SIMP010 =005C  
  280. SIMPLE  =002A  
  281. SIMPLOOP=005A  
  282. STK010  =00BC  
  283. STKIMB  =00B8  
  284. TWO010  =009A  
  285. TWO020  =009D  
  286. TWOLOOP =0097  
  287. VARLOOP =00A5  
  288.